home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Internet / PPP_Installation_Kit / PPP-2.2-0.4.6-pkg / README.NeXT.MAB.Installation < prev   
Text File  |  1995-11-29  |  34KB  |  783 lines

  1. #
  2. #  $Id: README.NeXT.MAB.Installation,v 4.2 1995/11/30 02:01:44 perkins Exp $
  3. #
  4.  
  5. This distribution contains a MAB installer package for ppp-2.2.
  6. Only the binaries are distributed with this package. The full
  7. source code is available from:
  8.  
  9.   ftp://ftp.thoughtport.com/pub/next/ppp/
  10.    -or-
  11.   http://www.thoughtport.com:8080/PPP/
  12.  
  13. For problems, please mail nextppp@listproc.thoughtport.com.  Make
  14. sure you read the TROUBLESHOOTING section below so that you send all
  15. the appropriate information.
  16.  
  17. For more information on PPP in general, you might want to check out:
  18.    http://cs.uni-bonn.de/ppp/faq.html
  19.      -and-
  20.    ftp://morningstar.com/pub/papers/ppp-white-paper.ps.gz
  21.      -and-
  22.    http://www.cis.ohio-state.edu/hypertext/faq/usenet/pdial/faq.html
  23.        (This last is a list of internet providers)
  24.  
  25. If you have questions or problems, please mail Steve Perkins
  26. <perkins@cps.msu.edu>.
  27.  
  28. Installation Instructions
  29. =========================
  30.  
  31. The installer setup was designed to allow you to easily install PPP as
  32. well as to easily upgrade to future releases.  A full description of
  33. the installation structure is described later under the section
  34. "Directory Structure".  However, you don't need to read this section
  35. in order to get PPP working.
  36.  
  37. The procedure for an initial installation and for an upgrade are very
  38. similar. However, if this is the first time you are installing PPP,
  39. there are a few extra steps that you must do for the initial setup.
  40. They will be described later in this document.
  41.  
  42. Everybody must install the PPP package (using the NeXT Installer.app)
  43. regardless of whether this is an initial installation or an upgrade.
  44. This installation must be done as root.  The installer will place
  45. ppp-2.2 in a new directory /usr/local/ppp.  If this directory already
  46. exists and _does not_ contain a previous version of ppp-2.2 that was
  47. installed with the installer package, you might want to think about
  48. moving it before you use the installer package.  If the directory does
  49. exist and does contain a previous version of PPP that was installed
  50. with the installer, it is safe to perform the upgrade.  You will not
  51. lose any existing files.
  52.  
  53. If you are performing an upgrade, you are almost done after
  54. successfully using the installer. All you need to do is to edit
  55. /etc/rc.local (as described below) and add code to load the new BPF
  56. relocatable code.  Then, you must reboot your machine so that the new
  57. loadable kernel server (LKS) is loaded. You should be able to start
  58. the upgraded PPP just like normal.  If this doesn't work, see the
  59. "Troubleshooting" section later on.
  60.  
  61.  
  62. Extra Steps for Initial Configuration 
  63. =====================================
  64.  
  65. If this is the initial installation of PPP, there are several system
  66. administration steps that must be performed.  These only need to be
  67. done once.  These steps do not need to be re-performed for an upgrade.
  68.  
  69. 1) Before PPP can successfully run, a module called the loadable
  70.    kernel server (LKS) must be linked into the system.  This is 
  71.    something that must be done each time the computer boots up.
  72.  
  73.    So that you don't have to do this by hand each time the machine
  74.    boots, you should modify a file called /etc/rc.local.  Since 
  75.    this is a system file, you must be root to perform the
  76.    modification.
  77.  
  78.    This file contains code that is run each time the machine is
  79.    started.  This is the standard place where "local" modifications 
  80.    are made to the system.  First, make a backup copy of /etc/rc.local
  81.    (maybe named /etc/rc.local.prePPP).  It will be available in case
  82.    you accidentally mess up the file.  Then, using vi or your favorite
  83.    editor, place the following lines (not including the ==...==
  84.    separators ;) somewhere near the end of the file /etc/rc.local:
  85.  
  86. ======================================================================
  87. #
  88. # Load the Berkley Packet Filter LKS
  89. # This must be done before PPP.  Comment this out
  90. # if you disabled BPF. If you use BPF, you _must_ 
  91. # load it before the PPP LKS.  If you chaged pathnames
  92. # in the Makefile, make sure the appropriate paths are
  93. # used below.
  94. #
  95. if [ -f /usr/local/bpf/reloc/bpf_reloc ]; then
  96.        /usr/etc/kl_util -a /usr/local/bpf/reloc/bpf_reloc
  97. fi
  98.  
  99. # Load the selected version of the PPP-2.2 loadable
  100. # kernel server (LKS).
  101. #     
  102. if [ -f /usr/local/ppp/reloc/ppp_reloc ]; then
  103.     /usr/etc/kl_util -a /usr/local/ppp/reloc/ppp_reloc > /dev/console 2>&1
  104.     (echo -n ' ppp')    > /dev/console
  105. fi
  106. ======================================================================
  107.  
  108.   This code will now be executed next time you reboot your
  109.   machine.  You can verify that this was executed by checking
  110.   the output of /usr/adm/messages upon a successful reboot.  There
  111.   should be a section of output that says the PPP-2.2 LKS was 
  112.   successfully loaded.
  113.  
  114.  
  115. 2) The installer package places things in a directory called
  116.    /usr/local/ppp.  There are several subdirectories under this
  117.    directory.  However, these directories are not part of the standard
  118.    UNIX Path.  The UNIX Path is a list of directories that UNIX searches 
  119.    when it is trying to find a command.  There are two solutions
  120.    to fix the problem.  You may either add specific PPP directories to
  121.    the current path (must be done for each individual user), or you
  122.    may add important files to a directory that is already in the
  123.    standard path.  I believe the second approach is the better
  124.    solution.  
  125.  
  126.    This step is optional, but highly recommended.  As root,
  127.    execute the following commands to add important files
  128.    to directories that are already in the Standard UNIX path:
  129.  
  130.    /bin/mkdirs -o root -g wheel -m 755 /usr/local/bin /usr/local/man/man8
  131.    ln -s /usr/local/ppp/bin/* /usr/local/bin
  132.    ln -s /usr/local/ppp/man/man8/* /usr/local/man/man8
  133.  
  134.    Some or all of the 'mkdir' commands may fail if the directories
  135.    already exists.  This is OK.  Futher, to get the man program to
  136.    understand that you have added some pages to the /usr/local/man 
  137.    directory, you need to make sure that the environment variable
  138.    MANPATH includes the /usr/local/man entry.  In my .cshrc file
  139.    I have an entry that looks like:
  140.       setenv MANPATH "/usr/local/man:/usr/man:.:.."
  141.    See 'man man' for more information.
  142.  
  143.    Once these commands are executed, the programs pppd, pppstats, and
  144.    chat (along with their respective man pages) will become available
  145.    to you from the command line.  However, before you can immediately
  146.    see them, you may need to log out and log back in.
  147.  
  148.  
  149. 3) Once you start trying to make PPP connections, it is important
  150.    to have access to the logging information that PPP generates. This
  151.    will allow you to follow the progress of PPP and will aid in
  152.    diagnosing problems.  The user level process 'pppd' outputs
  153.    logging information by using the standard UNIX syslog facility.
  154.    Part of this facility allows you to select how much (i.e.
  155.    what level of verbosity) and where (i.e. to which file) this
  156.    information will be placed.  While the following step is optional,
  157.    it is highly recommended.
  158.  
  159.    As root, make a backup copy of /etc/syslog.conf.  You may wish
  160.    to call it /etc/syslog.conf.prePPP.  If you run into problems with
  161.    the system logging error messages, you can replace /etc/syslog.conf
  162.    with the original, reboot, and then you should be back to normal.
  163.  
  164.    Now, as root, use vi or your favorite editor to edit the file
  165.    /etc/syslog.conf.  You need to add the line:
  166.  
  167.        local2.debug        /usr/adm/ppp2.2.log
  168.  
  169.    It is _imperative_ that you place a <tab> character
  170.    between the level "local2.debug" and the file name
  171.    "/usr/adm/ppp2.2.log".  Do _not_ use spaces. If your
  172.    editor converts tab characters to spaces, you need to
  173.    use a different editor.  Also beware of cutting and pasting
  174.    between buffers.  Sometimes a tab will be converted to spaces
  175.    during that operation. Below is the actual contents of
  176.    my /etc/syslog.conf:
  177.  
  178. ======================================================================
  179. local2.debug                    /usr/adm/ppp2.2.log
  180. *.err;kern.debug;auth.notice            /dev/console
  181. kern.debug;daemon,auth.notice;*.err;mail.crit    /usr/adm/messages
  182. mark.debug,daemon.info                /usr/adm/messages
  183. lpr.debug                    /usr/adm/lpd-errs
  184. mail.info                    /usr/spool/mqueue/syslog
  185.  
  186. *.alert;kern.err;daemon.err            operator
  187. *.alert                        root
  188.  
  189. *.emerg                        *
  190. ======================================================================
  191.  
  192.    Once you have modified /etc/syslog.conf, you then need to perform
  193.    one more step.  You need to actually create an empty logging file.
  194.    This step is necessary because if syslog does not see the file, it
  195.    will not create it.  So, removing the file is a handy way to turn
  196.    off the logging.  To create an empty logging file, as root execute:
  197.  
  198.         touch /usr/adm/ppp2.2.log
  199.  
  200.    Upon a successful reboot, logging will be enabled for pppd
  201.    (remember to specify the 'debug' option to pppd to get reasonable 
  202.    information sent to the logging file).
  203.  
  204.  
  205. 4) If you have a standalone machine, it is necessary for you to make
  206.    sure your system is configured to correctly support a network.  The
  207.    following steps will help in correctly configuring your machine.
  208.    Please note, if you do not have a standalone machine (i.e. you are
  209.    on a local network), you need to speak with your system
  210.    administrator to determine the proper configuration for your
  211.    machine.  The following only applies to standalone machines.
  212.  
  213.    It is suggested that you reboot your machine _before_ you start 
  214.    these procedures.  This is to verify that you successfully
  215.    completed the previous steps and that your machine does indeed
  216.    reboot.  If it doesn't, you should replace /etc/rc.local with the
  217.    backup copy and reboot.  Then, determine why your modifications
  218.    failed.  After successfully rebooting, you are ready to move on to 
  219.    these steps.
  220.  
  221.    As root, make a backup copy of /etc/iftab.  You might name it
  222.    /etc/iftab.prePPP.  Then, modify this file by adding the line:
  223.   
  224.     lo0     inet    127.0.0.1 netmask 0xff000000 -trailers up
  225.  
  226.    right before the -1- entry that already exists in the file.  The
  227.    finished file should look similar to (minus the ---- separators):
  228.    ----------------------------------------------------------------------
  229.  
  230.    lo0     inet    127.0.0.1 netmask 0xff000000 -trailers up
  231.    -1-       inet       -HOSTCONFIG-
  232.    *       inet       -AUTOMATIC- netmask -AUTOMATIC- -trailers up
  233.  
  234.    ----------------------------------------------------------------------
  235.    Please note that the file  probably has a bunch of comments
  236.    at the top (lines that start with #).   I left those out in the
  237.    example above so I could save space.  They of course, can remain
  238.    in your copy.
  239.   
  240.    As root, make a backup copy of /etc/hostconfig.  You might
  241.    name it /etc/hostconfig.prePPP.  If, after the following steps, you
  242.    run into problems booting your machine, you may replace
  243.    /etc/hostconfig with the backup and you should be able to
  244.    successfully reboot.
  245.  
  246.    Start up the HostManager.app (under /NextAdmin).  After
  247.    successfully entering the root password, you should get the
  248.    HostManager Menu.  Select the "Local..." menu option to get the
  249.    main window.  Modify it as follows: 
  250.  
  251.        For "NetInfo Binding", select "use local domain only"
  252.            and make sure the box for "Readable only by local net" 
  253.            is checked.
  254.  
  255.            For "Hostname", fill in your host name as appropriate.  Do
  256.            _not_ add the domain name.  For example, use "sidney"
  257.            rather than "sidney.cps.msu.edu". 
  258.  
  259.            For "NIS Domain Name", select "None"
  260.  
  261.            For "Internet Address", use the provided IP address
  262.            (probably 127.0.0.1) unless your system administrator has
  263.            assigned you your own unique IP address.  In this case,
  264.            reverify that you are a standalone machine.
  265.  
  266.            For "Broadcast Address", select "Default"
  267.     
  268.        For "Time Standard", select "Ignore Network Time"
  269.  
  270.            For "Netmask", select "Default"
  271.  
  272.            For "Router", select "None"
  273.  
  274.   When this is complete, click the "Set" button.   You will then have
  275.   the option to reboot or to skip the reboot.  Choose the appropriate 
  276.   action.  It is suggested that you reboot immediately and verify that
  277.   your system does indeed reboot (and behave as normal).  If it
  278.   doesn't, replace /etc/hostconfig with the backup copy and then
  279.   reboot.  Once you are back up, determine the problem with your
  280.   configuration. 
  281.  
  282.   Please note that this description is generic and will work in most
  283.   cases.  There are lots of variations that people can and will need 
  284.   to make. Your network administrator will be able to provide you with
  285.   the correct details for your particular site.
  286.  
  287.  
  288. Congratulations!  You have successfully installed PPP and are now
  289. ready to start up a connection.  See the section "Initial Testing" for
  290. steps to verify that PPP works on your system.  
  291.  
  292.  
  293. Initial Testing
  294. ===============
  295.  
  296. One of the most notoriously difficult portions of getting PPP links up
  297. and running involves writing the script that automatically dials your
  298. modem, connects to the peer, and starts the remote ppp process.  Once
  299. you are connected to the peer, each PPP process will start
  300. communications and things become much easier.
  301.  
  302. Before you dive into script writing, there is a simpler solution that
  303. will allow you to test the ppp portion.  Once this works, getting the
  304. dial scripts to work is a matter of sheer determination!
  305.  
  306. The mechanism is this... use a communications package (tip or kermit
  307. are good choices) to manually dial the modem and log into the remote
  308. server.  There, manually start up the pppd process (the remote
  309. process, once started, will probably print some garbage on the screen.
  310. You can ignore this). Once this is done, you can exit the
  311. communications process (to free up the device it is using).  Then,
  312. start your local pppd on the same device.  The pppd processes will
  313. then start communicating.  The premise is that you manually perform
  314. the operations that you would like your dial script to automatically
  315. perform.  Once you _know_ ppp works, you can spend time on the dial
  316. scripts.
  317.  
  318. Please note, you _must_ exit from your communications program before
  319. you start your local pppd.  For example if you are in kermit and you
  320. start the peer pppd process by hand, you must completely exit kermit
  321. before you start pppd.  If you don't, the connection will not form.
  322. Further, if you find that when you exit, your modem immediately hangs
  323. up, you need to instruct the modem to ignore DTR.  There is an AT
  324. command that will do this (AT&D on Supra), but you will need to check
  325. your modem manual to determine the correct command.
  326.  
  327. If you are planning on using kermit, Stephane I. Matis
  328. <petergun@vectrex.login.qc.ca>, has supplied this excellent definition
  329. that you may place inside your .kermrc file to help with PPP testing:
  330. ----------------------------------------------------------------------
  331. set term byte 8
  332.  
  333. # define pppd 
  334. define pppd -
  335.         !pppd < \v(line) > \v(line) defaultroute
  336. ----------------------------------------------------------------------
  337.  
  338. To use this, add the above to your ~/.kermrc file (minus the '---...---'
  339. separators).  Then start kermit.  After you have started the remote PPP
  340. server by hand, return back to your local kermit prompt and execute
  341. the command 'do pppd'.  In this particular circumstance, you will not
  342. need to exit from kermit.
  343.  
  344. Before you start initial testing, you may want to read the pppd man
  345. page.  This will allow you to familiarize yourself with the some of
  346. the options available to you for starting your local pppd.
  347.  
  348. Of particular interest for most people is the 'defaultroute' option to
  349. pppd.  If you have a standalone machine, then all your foreign traffic
  350. must go to the peer.  Adding the 'defaultroute' option to pppd
  351. instructs pppd to set your system up in such a manner.
  352.  
  353.  
  354. Determining if the link is actually up
  355. ======================================
  356.  
  357. There are several ways to determine if the link has actually been
  358. established.  I will go through some of them.
  359.  
  360. 1) You may look at the pppd log file (typically
  361.    /usr/adm/ppp2.2.log).  If you see lines that look similar to:
  362.  
  363.     Jan 11 23:13:38 sidney2b pppd[2141]: local IP address 35.9.12.55
  364.     Jan 11 23:13:38 sidney2b pppd[2141]: remote IP address 35.9.10.13
  365.  
  366.    You are probably up.
  367.  
  368. 2) You may check the status of the PPP interface.  Using the command:
  369.      /usr/etc/ifconfig ppp0
  370.  
  371.    You should see that the interface is UP and that there are valid
  372.    IP addresses assigned to it (0.0.0.0 is not valid).  Here is an
  373.    example of what you might see:
  374.  
  375.     ppp0: flags=51<UP,POINTOPOINT,RUNNING>
  376.             inet 35.9.12.104 --> 35.9.10.14 netmask ff000000 
  377.  
  378. 3) You may check the routing.  When the connection comes up, you
  379.    should get at least one route to the new interface.  If you
  380.    specified 'defaultroute' to pppd, you should also see a default
  381.    route.  The command for checking routes is 'netstat -rn'.  Here
  382.    is an example of what you might see:
  383.  
  384.     Routing tables
  385.     Destination      Gateway            Flags     Refs     Use  Interface
  386.     127.0.0.1        127.0.0.1          UH          2      558  lo0
  387.     35.9.10.14       35.9.12.104        UH          0        0  ppp0
  388.     default          35.9.10.14         UG          2       25  ppp0
  389.     192.42.172       192.42.172.1       U           6     1939  en0
  390.  
  391.  
  392.   In the above case, the peer is 35.9.10.14 and my local machine has
  393.   been assigned 35.9.12.104.  All foreign traffic goes through the
  394.   default route to the peer.
  395.  
  396.   If you don't have an ethernet card installed on your system, you
  397.   will not have an 'en0' interface.
  398.    
  399.   
  400. The routing issue is important.  Discussion of this issue is outside
  401. the scope of these instructions, but I thought it might be beneficial
  402. to list a few other important tools that may help you out.  The man
  403. pages can give more details:
  404.  
  405.   /usr/etc/ping           - send packets to an IP address or hostname
  406.   traceroute          - Show the route to a particular machine
  407.  
  408. The IP address that you use can be negotiated automatically in PPP.
  409. Unlike SLIP, you do not have to specify an IP address when the link is
  410. brought up.  If no address is specified as an argument to pppd, then
  411. PPP will negotiate the address with the peer.  This is the preferred
  412. mechanism of operation.  Probably the only time you should specify an
  413. IP address as an argument to pppd is if you are assigned your own IP
  414. address by your system administrator.  Otherwise, sit back and let PPP
  415. do the work for you.
  416.  
  417.  
  418. A Typical PPP Session
  419. =====================
  420.  
  421. A tyipcal PPP session begins when you log into your system.  From a
  422. terminal window, you will run your dial script by typing its name at
  423. the prompt.  If you use the Workspace manager, you can double click on
  424. the scripts icon.  This will start the chat process that will dial the
  425. modem and log into the remote system.  It will then turn control over
  426. to pppd.  If your script is successful (as described in the
  427. "Determining if the link is actually up" section), you will be all
  428. set.  All your apps, OmniWeb, FTP, telnet, etc should work.
  429.  
  430. Once you are through using the connection, you can close down the PPP
  431. link by executing the ppp down script.  Again, this can be done by
  432. typing the name of the pppdown script in a terminal window, or double
  433. clicking on the appropriate icon in the Workspace manager.  At this
  434. point, ppp will terminate the phone connection and pppd will die off.
  435.  
  436. You may start and kill the ppp session as many times as you like while
  437. you are logged on.  However, if you do not kill the PPP session, it
  438. will not die once you log out.  Thus your telephone will remain off
  439. the hook and your computer will remain connected to the net until you
  440. log back in and shut down the connection.  Turning off the computer
  441. will obviously close the connection.
  442.  
  443.  
  444. Name Resolution
  445. ===============
  446.  
  447. Once you have a ppp connection up, you may notice that your machine
  448. will not be able to resolve the names of machines to their IP
  449. addresses.  You can check this by trying to telnet to a machine outside
  450. your local domain.  If "telnet <IP address of machine>" is successful,
  451. but "telnet <machinename>" is not, then your name resolution is not
  452. configured correctly. The fix is to edit the file /etc/resolv.conf.
  453. This file contains two important items.  The first is your domain
  454. name.  This is the name that is automatically tacked on to a computer
  455. name if you don't specify the complete name.  For example if my domain
  456. is 'cps.msu.edu' and I say 'telnet sidney', the computer will try
  457. 'telnet sidney.cps.msu.edu' (although, it will not print this name on
  458. the command line).
  459.  
  460. The second thing is a list of name servers.  These should be local to
  461. your ppp provider.  Your network administrator will be able to provide
  462. you with the appropriate addresses. There are default name servers to
  463. use in case the local provider is not responding.  An example file
  464. might look like:
  465.  
  466. ----------------------------------------------------------------------
  467. domain cps.msu.edu
  468.  
  469. #
  470. # Insert local name servers here
  471. #
  472.  
  473.  
  474. #
  475. # MSU name servers 
  476. #
  477. nameserver 35.8.2.41
  478. nameserver 35.8.2.41
  479. nameserver 128.247.160.56
  480.  
  481. #
  482. # Other servers -- hopefully something will work if needed
  483. #shadooby.cc.umich.edu
  484. nameserver 35.1.1.91
  485. #ns.nasa.gov
  486. nameserver 128.102.16.10
  487. ----------------------------------------------------------------------
  488.  
  489. You will need to reboot your computer for the new nameservers to take
  490. effect.
  491.  
  492.  
  493. Making startup and shutdown scripts
  494. ===================================
  495.  
  496. By this time, I'm assuming that PPP has been successfully installed.
  497. However, there are a few more steps that you must perform so that
  498. using PPP (now and with future upgrades) will be convenient and easy.
  499. These steps are optional, but they are highly recommended.
  500.  
  501. Make scripts 'pppup' and 'pppdown' that bring up and shutdown PPP
  502. connections.  There are a number of example scripts that you can copy
  503. and modify.  Reading the man page for 'chat' will help you understand
  504. these scripts. You should note that once these scripts are made, you
  505. probably won't need to change them for future upgrades to PPP.
  506.  
  507. One note that you should be VERY careful about.  These file are shell
  508. scripts.  This means that the contents are executed in a shell just as
  509. if you had typed them in by hand.  You must make sure that any
  510. characters that are treated specially by the shell (such as < > | \ )
  511. are inside quotation marks ("").  Otherwise, they will be interpreted
  512. by the shell in a manner that is probably to your dislike.  For
  513. example, if your peer sends you a prompt like MSUnet> you must add it
  514. to the chat portion of your script like "MSUnet>".
  515.  
  516. In order to ensure that these scripts are not removed or modified when
  517. new versions of PPP are installed, you should copy all important
  518. scripts into a new directory.  I suggest /usr/local/ppp/scripts.  This
  519. directory will not be modified during installation. Further, as you
  520. did earlier for the important binaries, you may want to add important
  521. scripts to a directory that is in the default UNIX Search Path.  The
  522. mechanism for doing this is as follows.  Suppose you have a script
  523. 'pppup' (found in /usr/local/ppp/scripts) that you want to be
  524. available on your command line.  You could execute the commands:
  525.   /bin/mkdirs -o root -g wheel -m 755 /usr/local/bin
  526.   ln -s /usr/local/ppp/scripts/pppup /usr/local/bin
  527.  
  528. Once you log out and log back in, this script will be available.  If
  529. you want to be able to call this script from a non-root account, you
  530. need to modify the permission on the file to make it suid root.
  531. Please note that this can be a potential security hazard.  See your
  532. system administrator for more details.
  533.  
  534.  
  535. Directory Structure
  536. ===================
  537.  
  538. In order to support different versions of PPP, and to provide a safe
  539. upgrade path, the installer installs all files under a subdirectory
  540. named /usr/local/ppp/ppp-2.2-x.x.x  where x.x.x is replaced with the
  541. current version.  Multiple versions can exist simultaneously.  Under
  542. each version, further subdirectories are created (bin, man, examples,
  543. src, etc...).  These contain the actual code.
  544.  
  545. To facilitate easy access to all files in any one particular version,
  546. there is a file named '/usr/local/ppp/version' that is a symbolic link
  547. to the desired PPP version directory.  Furthermore, symbolic links
  548. /usr/local/ppp/[bin,man,examples,reloc,...]
  549. actually point to ./version/[bin,man,examples,reloc...].
  550.  
  551. With this configuration, you can have a fixed pathname that will
  552. always point to the selected version.  For example, if you are using
  553. version 0.3.3 then the pathname:
  554.  
  555.    /usr/local/ppp/bin/pppd
  556.      -will become-
  557.    /usr/local/ppp/./version/bin/pppd
  558.      -which becomes-
  559.    /usr/local/ppp/ppp-2.2-0.3.3/bin/pppd
  560.  
  561.  
  562. One link is created outside the /usr/local/ppp hierarchy.  /etc/ppp is
  563. a link that points to /usr/local/ppp/etc.
  564.  
  565.  
  566. How to Switch between different installed versions of PPP
  567. =========================================================
  568.  
  569. To switch between different version of an installed PPP, you only need
  570. to modify the link /usr/local/ppp/version.  Suppose you want to use
  571. PPP-2.2-0.3.3.  Here are the steps to switch:
  572.       cd /usr/local/ppp
  573.  
  574.    If /usr/local/ppp/version already exists, remove it:
  575.       rm -f ./version
  576.  
  577.    Now create the link pointing to the desired version:
  578.       ln -s ./ppp-2.2-0.3.3 ./version
  579.  
  580.  
  581. You will need to reboot so that the correct LKS is loaded and linked
  582. against the kernel.
  583.  
  584.  
  585. Deinstalling PPP
  586. ================
  587.  
  588. The installer package will deinstall PPP as well as install it.
  589. However, in order to support upgrades, the installer package will not
  590. remove all files that it may have initially created.   The directories
  591. /usr/local/ppp/etc and /usr/local/ppp/scripts will not be modified.
  592. Thus it is safe to keep your dial scripts there.  Further, the
  593. installer package will not modify the links in /usr/local/ppp/ or
  594. /etc/ppp.
  595.  
  596. After de-installation, you may need to update the version link. See
  597. the section "How to Switch between different installed versions of
  598. PPP" for directions on how to do this.
  599.  
  600. As mentioned above, of particular interest for most people is the
  601. 'defaultroute' option to pppd.  If you have a standalone machine, then
  602. all your foreign traffic must go to the peer.  Remember to add the
  603. 'defaultroute' option to pppd in your startup scripts if necessary (or
  604. place it in the /etc/ppp/options file).
  605.  
  606. Troubleshooting
  607. ===============
  608.  
  609. The NeXT port of ppp-2.2 is stable. However, the PD ppp-2.2 is
  610. still evolving.  To find out the latest status of the port, see:
  611.   http://www.thoughtport.com:8080/PPP/
  612.  
  613. Any time that you have a bug report to send, please include your
  614. hardware type and the LKS version number in all reports.  This number
  615. may be found in the file /usr/adm/messages (once the LKS has been
  616. installed). Also, for most questions, it is best to append a copy of
  617. the /usr/adm/ppp2.2.log file.  Bug reports should be sent to
  618. perkins@cps.msu.edu.
  619.  
  620. There are some common problems that people have.  I have listed them
  621. here:
  622. ======================================================================
  623. 1) pppd bombs out with an error similar to:
  624.  Jan 26 14:46:25 localhost pppd[256]: Connected...
  625.  Jan 26 14:46:26 localhost pppd[256]: ioctl(PPPIOCGUNIT): Inappropriate ioctl for device
  626.  Jan 26 14:46:26 localhost pppd[256]: Exit.
  627.  
  628. This is typically the result of using the wrong LKS with pppd.  Some
  629. versions of PPP installed the LKS (ppp_reloc) in
  630. /usr/lib/kern_loader/ppp and some in /usr/local/ppp/reloc.  The second
  631. is going to be the standard place for installation from now on.  Make
  632. sure that your /etc/rc.local is loading the correct version of the LKS
  633. and make sure you are really calling the correct pppd for use with the
  634. LKS that you loaded.
  635.  
  636. ======================================================================
  637.  
  638. 2) PPP works fine, but when the link is up, netinfo sleeps when you
  639.    try to print or send mail.
  640.  
  641. You'll see this problem if you don't have a route from your "hostname"
  642. to localhost.  In essence, your host doesn't know how to "get back to
  643. itself".  My guess is that you didn't follow the installation
  644. instructions and you chose an IP address different than 127.0.0.1.
  645. There is a fix! ;) Do this in your rc.local:
  646.  
  647. route add your_host_name localhost 0
  648.  
  649. (with the appropriate substitution of your_host_name) Without it,
  650. netinfo will sleep when trying to connect to the local domain.  You
  651. will need to reboot or perform this command manually (as root) for it
  652. to take affect.
  653.  
  654. Many thanks to:
  655.   Scott Bender 
  656.   Pete French
  657.   Terence Parr   
  658. for help on this one.
  659.  
  660. ======================================================================
  661.  
  662. 3) People who are trying to set up a NeXT as a PPP server that
  663.    they dial into often complain that they can make a connection, but
  664.    the remote machine can only ping the server.  No other packets
  665.    work.
  666.  
  667. Check out the 'proxyarp' option to pppd.  Servers (connected to their
  668. LAN) must proxyarp for the remote address (i.e. the address of the
  669. machine dialing in).  Further, read the file ./NeXT/README.NeXT (not
  670. this file) for more information on proxyarp.
  671.  
  672. ======================================================================
  673.  
  674. 4) You pppd/chat dials the modem but you cannot get a negotiation
  675.    to start.  The /usr/adm/ppp2.2.log file shows something similar
  676.    to:
  677.  
  678.   Mar 13 12:02:41 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
  679.   Mar 13 12:02:44 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
  680.   Mar 13 12:02:47 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
  681.   Mar 13 12:02:51 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
  682.   Mar 13 12:02:54 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
  683.   Mar 13 12:02:57 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
  684.   Mar 13 12:03:00 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
  685.   Mar 13 12:03:03 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
  686.   Mar 13 12:03:06 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
  687.   Mar 13 12:03:09 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
  688.   Mar 13 12:03:12 crystal pppd[243]: LCP: timeout sending Config-Requests
  689.   Mar 13 12:03:12 crystal pppd[243]: Connection terminated.
  690.   Mar 13 12:03:12 crystal pppd[243]: Serial link is not 8-bit clean:
  691.   Mar 13 12:03:12 crystal pppd[243]: All received characters had bit 7 set to 0
  692.  
  693. This is a common problem.  It is typically the result of a failure to
  694. properly start the remote PPP process.  Make sure you add the '-v'
  695. option to chat (in your dial script) and then check the output of
  696. /usr/adm/ppp2.2.log to see why chat failed to start the remote PPP
  697. process.
  698.  
  699. ======================================================================
  700.  
  701. 5) Your LCP sessions get into an infinite loop while trying to
  702.    negotiate the magic numer.  Alternately, every LCP echo you send
  703.    is accompanied with a message saying that "our own echo reply was
  704.    received".  I'm not sure why some systems have this trouble, but
  705.    the solution is to turn off magic number negotiation at your end. 
  706.    Add the '-mn' flag to pppd.
  707.  
  708. ======================================================================
  709.  
  710. 6) NXHosting applications over PPP fails.  I don't know why this 
  711.    happens.  Rest assured, that I and others do have it working.
  712.    The most obvious things to check are that you have your system set
  713.    up as a public window server.  Also, make sure that you reset the
  714.    nmserver in /etc/ppp/ip-up (see the example ip-up file).  If it
  715.    still doesn't work, you might want to add your peer to your
  716.    /etc/hosts.equiv file.  I don't know if that has anything to do
  717.    with it or not, but I don't know why some people can't NXHost
  718.    and others can.
  719.  
  720.  
  721. Updates
  722. =======
  723.  
  724. You may also want to join the mailing list for PPP.  This will keep
  725. you informed of new releases and will provide an arena for discussing
  726. problems with the NeXT specific PPP port.  To add yourself to the list
  727. (or for any other administrative requests), send an email message to:
  728.     listproc@listproc.thoughtport.com
  729. with no subject and message body consisting of:
  730.     subscribe nextppp Stephen J. Perkins
  731. (please use your own name ;). To send mail to all the participants on
  732. the list, address your messages to:
  733.        nextppp@listproc.thoughtport.com
  734.  
  735. If you want announcements only, there is a second "announcements only"
  736. list.  To subscribe to this, you may use the alternate body:
  737.     subscribe nextppp-announce Stephen J. Perkins
  738. You don't need to subscribe to both.  All announcements are forwarded
  739. to the regular list.
  740.  
  741. Security
  742. ========
  743.  
  744. Security issues are not dealt with in this document.  Please
  745. note that the pppd file is installed suid root.  This is a potential
  746. security hazard.
  747.  
  748.  
  749.  
  750. Noted bugs
  751. ==========
  752.  
  753. There have been various problems reported when trying to install LKSs
  754. the way NeXT intended (i.e. placing them in /usr/lib/kern_loader/* and
  755. modifying /etc/kern_loader.conf). The main problem seems to be that
  756. after modifying /etc/iftab, /etc/rc.net (on NSFIP) will not correctly
  757. configure the interfaces.  This means that booting under NSFIP will
  758. hang. So, for the time, it is suggested that you install the package
  759. manually and load the LKS in /etc/rc.local.
  760.  
  761.  
  762. Modem Configuration
  763. ===================
  764.  
  765. It is important to use hardware flow control if you use a high speed
  766. modem. On my supra V.32bis modem, the command to use Hardware Flow
  767. Control is 'AT&K3'.
  768.  
  769. Also, you will probably want to set your modem so that when the DTR is
  770. dropped, the modem will disconnect.  On my modem the command is
  771. 'AT&D2' This setting disables auto-answer so if you want to allow
  772. dialins, you must read your modem manual to determine the correct
  773. setting.
  774.  
  775.  
  776. Finally
  777. =======
  778.  
  779. Thanks go to Dino Bagdadi <dino@ex-nihilo.com> for helping to maintain
  780. this README file
  781.  
  782.